# 复写父类成员和调用父类成员


# 复写父类成员
class Phone:
    IMEI = None     # 序列号
    producer = "xj" # 厂商

    def call_by_5g(self):
        print("父类的 5g 通话")

# 继承父类并复写
class Phone2024(Phone):
    producer = "IT_XJ"       # 复写父类属性
    def call_by_5g(self):   # 复写父类方法
        print("子类的 5g 通话")
        # 调用父类成员
        #       使用成员变量:父类名.成员变量
        print(f"父类的厂商是:{Phone.producer}")

        #       使用成员变量:super().成员变量
        print(f"父类的厂商是:{super().producer}")

        #       使用成员方法:父类名.成员方法(self)
        Phone.call_by_5g(self)

        #       使用成员方法:super().成员方法()
        super().call_by_5g()


phone = Phone2024()
print(phone.producer)
phone.call_by_5g()

# 调用父类同名成员
# 一旦复写父类成员，那么类对象调用成员的时候就会调用复写后的新成员，如果需要使用被复写的父类成员，需要特殊的调用方式:
# 方式一:
# 调用父类成员
#       使用成员变量:父类名.成员变量
#       使用成员方法:父类名.成员方法(self)
phone.call_by_5g()

# 方式二:
# 使用super()调用父类成员方法
#       使用成员变量:super().成员变量
#       使用成员方法:super().成员方法()
phone.call_by_5g()